package com.example.dbmeta.exception;

public enum ErrorCode {
    PARASCOPE_ERROR(1000, "参数范围错误: {0}"),
    FILE_NOT_FOUND(1001, "配置文件未找到: {0}"),
    FILE_READ_ERROR(1002, "读取配置文件时出错: {0}"),
    CONFIG_PARSE_ERROR(1003, "配置文件解析失败: {0}"),
    DUPLICATE_DATASOURCE_NAME(2001, "存在重复的数据源名称: {0}"),
    MISSING_DATASOURCE_CONFIG(2002, "缺少必要的数据源配置: {0}"),
    DATASOURCE_CONNECTION_FAILED(3001, "数据源连接失败: {0}"),
    DATASOURCE_METADATA_ACCESS_ERROR(3002, "获取数据源元数据时出错: {0}"),
    UNSUPPORTED_DATABASE_TYPE(4001, "不支持的数据库类型: {0}"),
    METADATA_EXTRACTION_ERROR(4002, "元数据抽取失败: {0}"),
    // ... 其他错误码
    ;

    private final int code;
    private final String template;

    ErrorCode(int code, String template) {
        this.code = code;
        this.template = template;
    }

    public int getCode() {
        return code;
    }

    public String getTemplate() {
        return template;
    }

//    public DbMetaBootException toException(Object... args) {
//        String message = String.format(template, args);
//        return new DbMetaBootException(code, message);
//    }
//
//    public DbMetaBootException toException(Throwable cause, Object... args) {
//        String message = String.format(template, args);
//        return new DbMetaBootException(code, message, cause);
//    }
}